<!--SIF Implementation Specification 2.2-6 (March 17, 2008)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.sifinfo.org/infrastructure/2.x" xmlns:sif="http://www.sifinfo.org/infrastructure/2.x" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="imports/xml/xml.xsd" />
  <xs:complexType name="StudentDemographicRecordType">
    <xs:annotation>
      <xs:documentation>Conveys a student's demographic data for student record exchange and transcript purposes.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="ReportingDate" type="xs:date">
        <xs:annotation>
          <xs:documentation>The date this record was prepared.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StudentPersonalData">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType" />
            <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
            <xs:element name="SSN" minOccurs="0" nillable="true" type="sif:SSNType" />
            <xs:element name="OtherIdList" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="OtherId" maxOccurs="unbounded">
                    <xs:annotation>
                      <xs:documentation>Lists an "other" identifier associated with the student.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                      <xs:simpleContent>
                        <xs:extension base="xs:normalizedString">
                          <xs:attribute name="Type" use="required" type="sif:NCES0147IdentificationSystemType">
                            <xs:annotation>
                              <xs:documentation>Code that defines the type of this other ID.</xs:documentation>
                            </xs:annotation>
                          </xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="Name" type="sif:NameOfRecordType">
              <xs:annotation>
                <xs:documentation>
							Name of the student.  Note: Type value of 04 must be used here.
						</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="OtherNames" minOccurs="0" nillable="true" type="sif:OtherNamesType">
              <xs:annotation>
                <xs:documentation>Previous, alternate or other names or aliases associated with the student.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="DemographicsData" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="RaceList" minOccurs="0" nillable="true" type="sif:RaceListType" />
                  <xs:element name="Gender" minOccurs="0" nillable="true" type="sif:GenderType" />
                  <xs:element name="BirthDate" minOccurs="0" nillable="true" type="sif:BirthDateType" />
                  <xs:element name="EnglishProficiency" minOccurs="0" nillable="true" type="sif:EnglishProficiencyType">
                    <xs:annotation>
                      <xs:documentation>Person's proficiency in English.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="LanguageList" minOccurs="0" nillable="true" type="sif:LanguageListType">
                    <xs:annotation>
                      <xs:documentation>List of languages an individual uses to communicate.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
              <xs:annotation>
                <xs:documentation>The address of the student.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType" />
            <xs:element name="IDEA" minOccurs="0" nillable="true" type="sif:IDEAType" />
            <xs:element name="Migrant" minOccurs="0" nillable="true" type="sif:MigrantType" />
            <xs:element name="Title1" minOccurs="0" nillable="true" type="sif:Title1Type" />
            <xs:element name="GiftedTalented" minOccurs="0" nillable="true" type="sif:GiftedTalentedType" />
            <xs:element name="EconomicDisadvantage" minOccurs="0" nillable="true" type="sif:EconomicDisadvantageType" />
            <xs:element name="ELL" minOccurs="0" nillable="true" type="sif:ELLType" />
            <xs:element name="Homeless" minOccurs="0" nillable="true" type="sif:HomelessType" />
            <xs:element name="Section504" minOccurs="0" nillable="true" type="sif:Section504Type" />
            <xs:element name="VocationalConcentrator" minOccurs="0" nillable="true" type="sif:VocationalConcentratorType" />
            <xs:element name="Immigrant" minOccurs="0" nillable="true" type="sif:ImmigrantType" />
            <xs:element name="NeglectedDelinquent" minOccurs="0" nillable="true" type="sif:NeglectedDelinquentType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StudentContactsSummary" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ParentGuardian1">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Name" type="sif:NameType" />
                  <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType" />
                  <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="ParentGuardian2" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Name" type="sif:NameType" />
                  <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType" />
                  <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of this record.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SIF_RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>
								The GUID of an associated object, either StudentRecordExchange or StudentPersonal.
							</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SIF_RefObject" use="required">
      <xs:annotation>
        <xs:documentation>
								The associated object type.
							</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="StudentRecordExchange" />
          <xs:enumeration value="StudentPersonal" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="StudentDemographicRecord" type="sif:StudentDemographicRecordType" />

</xs:schema>